www.gusucode.com > matlab从零到进阶程序与数据 > matlab从零到进阶程序与数据/第6章 MATLAB与TXT文件的数据交换/片段8(fprintf).m

    %--------------------------------------------------------------------------
%                    调用fprintf函数写数据到文件或屏幕
%--------------------------------------------------------------------------

y = fprintf(1, '祝福我们伟大的新中国%d周岁生日快乐!!!', 60)

x = 10*rand(8,5);
fid = fopen('examp6_2_1.txt','wt');
% 把矩阵x以指定格式写入文件examp6_2_1.txt
fprintf(fid,'%-f    %-f    %-f    %-f    %-f    %-f    %-f    %-f\n', x);
fclose(fid);    % 关闭文件

x = rand(6,5)/10000;
fid = fopen('examp6_2_2.txt','wt');
% 把矩阵x以指定格式写入文件examp6_2_2.txt
fprintf(fid,'%-e  %-e  %-e  %-e  %-e  %-e\n', x);
fclose(fid);    % 关闭文件

x=10*rand(9,4);
fid = fopen('examp6_2_3.txt','wt');
% 把矩阵x以指定格式写入文件examp6_2_3.txt
fprintf(fid,'%f,%f,%f,%f,%f,%f,%f,%f,%f\n',x);
fclose(fid);    % 关闭文件

x = 10*rand(5,4);
fid = fopen('examp6_2_4.txt','wt');
% 把矩阵x以指定格式写入文件examp6_2_4.txt
fprintf(fid,'%-f    %-f,    %-f;    %-f*    %-f\n',x);
fclose(fid);    % 关闭文件

w = 10*rand(1,4);
x = 10*rand(1,3);
y = 10*rand(1,2);
z = 10*rand;
fid = fopen('examp6_2_5.txt','at');
% 把向量w,x,y,z分别以指定格式写入文件examp6_2_5.txt
fprintf(fid,'%-f    %-f    %-f    %-f\n', w);
fprintf(fid,'%-f    %-f    %-f\n', x);
fprintf(fid,'%-f    %-f\n', y);
fprintf(fid,'%-f\n', z);
fclose(fid);    % 关闭文件

x = 10*rand(1,3);
y = 10*rand(1,5);
z = 10*rand(1,4);
fid = fopen('examp6_2_6.txt','at');
% 把向量x,y,z分别以指定格式写入文件examp6_2_6.txt
fprintf(fid,'%-f    %-f    %-f\n', x);
fprintf(fid,'%-f    %-f    %-f    %-f    %-f\n', y);
fprintf(fid,'%-f    %-f    %-f    %-f\n', z);
fclose(fid);

x = 10*rand(6,3);
fid = fopen('examp6_2_7.txt','at');
% 往文件examp6_2_7.txt中写入两行文字
fprintf(fid,'这是%d行头文件,\n你可以选择跳过,读取后面的数据。\n', 2);
% 把矩阵x以指定格式写入文件examp6_2_7.txt
fprintf(fid,'%-f,    %-f,    %-f,    %-f,    %-f,    %f\n', x);
fclose(fid);    % 关闭文件

x = 10*rand(6,3);
y = 10*rand(3,2);
fid = fopen('examp6_2_8.txt','at');
% 往文件examp6_2_8.txt中写入两行文字
fprintf(fid,'这是%d行头文件,\n你可以选择跳过,读取后面的数据。\n', 2);
% 把矩阵x以指定格式写入文件examp6_2_8.txt
fprintf(fid,'%-f    %-f    %-f    %-f    %-f    %f\n', x);
% 往文件examp6_2_8.txt中再写入两行文字
fprintf(fid,'这里还有两行文字说明和两行数据,\n看你还有没有办法!\n');
% 把矩阵y以指定格式写入文件examp6_2_8.txt
fprintf(fid,'%-f    %-f    %-f    %-f    %-f    %f\n', y);
fclose(fid);    % 关闭文件

x = 10*rand(2,12);
fid = fopen('examp6_2_9.txt','wt');
% 把矩阵x以指定格式写入文件examp6_2_9.txt
fprintf(fid,'%f+%fi, %f+%fi, %f+%fi, %f+%fi\n', x);
fclose(fid);    % 关闭文件

dt = [2009 08 19 10 39 56.171
         2009 08 20 10 39 56.171
         2009 08 21 10 39 56.171
         2009 08 22 10 39 56.171]';
fid = fopen('examp6_2_10.txt','wt');
% 把矩阵dt以指定格式写入文件examp6_2_10.txt
fprintf(fid,'%d-%d-%d,  %d:%d:%5.3f AM\n', dt);  
fclose(fid);

x = ['xiezh'; 'yanlh'; 'liaoj'; 'lijun'; 'xiagk'];
y = [18 16 15 20 15]';
z = [170 160 160 175 172]';
w = [65 52 50 70 56]';
fid = fopen('examp6_2_11.txt','at');
fm = 'Name: %s Age: %d Height: %d Weight: %d kg\n';
% 通过循环将x,y,z和w按指定格式写入文件examp6_2_11.txt
for i = 1:5    
       fprintf(fid, fm, x(i,:),y(i),z(i),w(i));
   end
fclose(fid);


x = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
fprintf(1, '    %-d    %-d    %-d    %d\n', x);